package org.springblade.common.schedule;

import org.springblade.modules.rate.point.service.IPointRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 定时器
 * (*)星号：可以理解为每的意思，每秒，每分，每天，每月，每年...
 * (?)问号：问号只能出现在日期和星期这两个位置。
 * (-)减号：表达一个范围，如在小时字段中使用“10-12”，则表示从10到12点，即10,11,12
 * (,)逗号：表达一个列表值，如在星期字段中使用“1,2,4”，则表示星期一，星期二，星期四
 * (/)斜杠：如：x/y，x是开始值，y是步长，比如在第一位（秒） 0/15就是，从0秒开始，每15秒，最后就是0，15，30，45，60

 0 0 3 * * ?     每天3点执行
 0 5 3 * * ?     每天3点5分执行
 0 5 3 ? * *     每天3点5分执行，与上面作用相同
 0 5/10 3 * * ?  每天3点的 5分，15分，25分，35分，45分，55分这几个时间点执行
 0 10 3 ? * 1    每周星期天，3点10分 执行，注：1表示星期天
 0 10 3 ? * 1#3  每个月的第三个星期，星期天 执行，#号只能出现在星期的位置


 * **/

@Component
public class Jobs {

	@Autowired
	private IPointRecordService pointRecordService;

	//每月1号0点0分钟执行任务
	@Scheduled(cron = "0 0 0 1 * ?")
	public void cronJob() {
		pointRecordService.resetMouthQuota();
	}

//	//表示方法执行完成后5秒
//	@Scheduled(fixedDelay = 5000)
//	public void fixedDelayJob() throws InterruptedException {
//		System.out.println("fixedDelay 每隔5秒" + new Date());
//	}
//
//	//表示每隔3秒
//	@Scheduled(fixedRate = 3000)
//	public void fixedRateJob() {
//
//		System.out.println("fixedRate 每隔3秒" + new Date());
//	}


}
